let test = [1,2,3,undefined]
/**
 * map会给原数组中的每一项都执行一次callback，每次callbak的返回值(包括undefined)组成一个新数组并且返回
 * @param {*} callback 
 * @param {*} that 
 * @returns 
 */
Array.prototype.myMap=function(callback,that){
    let arrThis = that||this
    let newArray = []
    for(let i=0;i<arrThis.length;i++){
        newArray[i]=callback(this[i],i,this)
    }
    return newArray
}
console.log(test.myMap(item=>item));